package aaexcercise.chap5;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

/**
 * Created by Administrator on 2017/5/3.
 */
public class ReadTable {
    public static void main(String[] args) {
        String a = readFileByLines("E:\\yichanghw\\changtuld\\changtuldPhone.xml");
        String b = readFileByLines("E:\\yichanghw\\changtuldMonth\\changtuldPhone.xml");
        handleString(a);
        System.out.println("=======================");
        handleString(b);
    }

    public static void handleString(String s){
        String[] s1 = s.split(" ");
        ArrayList<String> list = new ArrayList<>(Arrays.asList(s1));
//        System.out.println(list);
        Set<String> tables = new HashSet<>();
        for (String ta : list){
            if (ta.startsWith("${DM_USER}.")||ta.startsWith("${DMCODE_USER}."))
                tables.add(ta);
        }
        System.out.println(tables);
    }
    /**
     * 以行为单位读取文件，常用于读面向行的格式化文件
     */
    public static String readFileByLines(String fileName) {
        File file = new File(fileName);
        StringBuilder sb = new StringBuilder();
        BufferedReader reader = null;
        try {
            System.out.println("以行为单位读取文件内容，一次读一整行：");
            reader = new BufferedReader(new FileReader(file));
            String tempString = null;
            int line = 1;
            // 一次读入一行，直到读入null为文件结束
            while ((tempString = reader.readLine()) != null) {
                // 显示行号
//                System.out.println("line " + line + ": " + tempString);
                line++;
                sb.append(tempString);
            }
            reader.close();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (reader != null) {
                try {
                    reader.close();
                } catch (IOException e1) {
                }
            }
        }
        return sb.toString();
    }
}
